package br.ita.doacoes.core.cadastrodoacoes.dao.impl;

import java.util.ArrayList;
import java.util.List;

import br.ita.doacoes.core.cadastrodoacoes.dao.ContraparteDAO;
import br.ita.doacoes.core.cadastrodoacoes.dao.DAO;
import br.ita.doacoes.core.cadastrodoacoes.dao.PessoaDAO;
import br.ita.doacoes.domain.cadastrodoacoes.Contraparte;
import br.ita.doacoes.domain.cadastrodoacoes.Pessoa;
import br.ita.doacoes.domain.cadastrodoacoes.PessoaFisica;
import br.ita.doacoes.domain.cadastrodoacoes.PessoaJuridica;
/**
 * @Author Helder
 */
public class DoadorJuridicaDAOImpl extends DAOImpl<PessoaJuridica>{
	private ContraparteDAO Cdao;

	public DoadorJuridicaDAOImpl() {
		super(PessoaJuridica.class);
		Cdao = new ContraparteDAOImpl();
	}

	public void delete(PessoaJuridica obj) {
		Contraparte x = Cdao.getByPessoa(obj);
		Cdao.delete(x);
	}

	public List<PessoaJuridica> getList() {
		List<Contraparte> x = Cdao.getList();
		List<PessoaJuridica> result = new ArrayList<PessoaJuridica>();
		
		for(Contraparte c : x)
			if(c.isPessoa() && c.getPessoa() instanceof PessoaJuridica)
				result.add((PessoaJuridica)c.getPessoa());
		
		return result;
	}

	public void insert(PessoaJuridica obj) {
		Contraparte c = new Contraparte();
		c.setPessoa(obj);
		Cdao.insert(c);
	}

	public void update(PessoaJuridica obj) {
		Contraparte c = Cdao.getByPessoa(obj);
		c.setPessoa(obj);
		Cdao.update(c);
	}

}
